Many computer vision techniques for processing digital images have been used, in order to extract useful information from the digital images. For instance, image segmentation techniques partition an image into multiple segments in order to locate objects and boundaries (e.g., lines and curves) in images. Optical flow techniques are used to study motion of objects, surfaces, and edges in images caused by the relative motion between an observer (an eye or a camera) and the scene. Specifically, optical flow techniques are used to estimate optical flow (i.e., velocity of movement of a pixel of an image to another location in another image). Optical flow techniques are used for motion estimation, data compression, robot navigation, and object tracking.